POV-Ray : Newsgroups : povray.text.scene-files : ridged multifractal w. slope-dependent texture : ridged multifractal w. slope-dependent texture Server Time
8 Jul 2024 09:48:31 EDT (-0400)
  ridged multifractal w. slope-dependent texture  
From: Bob H 
Date: 18 Jan 2001 05:17:27
Message: <3a66c2b7@news.povray.org>
// Persistence of Vision Ray Tracer Scene Description File
// File: rmfsdflyover.pov
// Date: 2000.56, 2001.05
// Auth: Bob Hughes
// Mail: inv### [at] aolcom?Subject=PoV-Scene
// Desc: MegaPOV's ridged multifractal with slope dependent texturing
// Note: use MegaPov 0.4+ and render with aspect ratio of 1.667:1 (for example
166x100)

#version unofficial MegaPov 0.6;

#declare Part=1;

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

// variables for changing seasons

#declare _C_=.25; // snow
#declare _Cw_=.9; // water ice

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

global_settings {
        assumed_gamma 3
        ambient_light .9
        max_trace_level 4
        number_of_waves 4
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

#switch (Part)
#case (1)

// camera path variables for animation

#declare CamSpos=
spline {
        cubic_spline
        0,<.1,.167,-9>
        .1,<.15,.29,-8.75>
        .175,<.225,.33,-8.5>
        .225,<.5,.425,-8.125>
        .5,<0,.4125,-7>
        .775,<-.5,.425,-6>
        .875,<-.2,.3,-5.5>
        .925,<-.125,.125,-5.25>
        1,<-.05,.02,-5>
}

#declare CamSpnt=
spline {
        cubic_spline
        0,<.1,.2,-8.5>
        .1,<.15,.35,-8>
        .225,<.475,.275,-7.5>
        .33,<.225,.225,-7>
        .5,<0,.25,-6.75>
        .775,<-.475,.275,-5.5>
        .9,<-.133,.2,-5>
        .95,<-.1,.125,-4.75>
        1,<-.05,.02,-4.5>
}

#declare CamSup=
spline {
        cubic_spline
        0,<0,1,0>
        .067,<.075,.9,-.0125>
        .1,<.1,.9,-.025>
        .2,<.075,.925,-.095>
        .275,<.1,.9,-.133>
        .325,<-.125,.875,-.1>
        .5,<0,1,0>
        .725,<-.1,.875,.1>
        .775,<.2,.75,.25>
        .9,<-.075,.867,0>
        .975,<.025,.9,.025>
        1,<0,1,0>
}

#declare clock_type="W" // zero one zero
#declare clock_repeat=1;
#include "clockmod.inc"
#declare _mCw_=mclock;

#declare clock_type="S" // zero one
#declare clock_repeat=1;
#include "clockmod.inc"
#declare _mCs_=mclock;

#declare clock_type="D" // zero one
#declare clock_combine="W"
#declare clock_repeat=1;
#declare clock_start=0;
#declare clock_finish=.05;
#include "clockmod.inc"
#declare _mCc_=mclock;

#declare clock_type="A" // zero one
#declare clock_repeat=1;
#declare clock_start=0;
#declare clock_finish=.15;
#include "clockmod.inc"
#declare _mCa_=mclock;

#declare clock_type="O" // zero one negative one zero
#declare clock_repeat=1;
#include "clockmod.inc"
#declare _mCo_=mclock;

#declare _CtLb_=_mCw_;
#declare _CtRb_=_mCw_;
#declare _CtLf_=_mCw_;
#declare _CtRf_=_mCw_;

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

#declare Tracking=clock;

#switch (Tracking)
#range (0,.05)
camera {
 location CamSpos (_mCs_)+<-.01,.0015,-.0161>
 right x*1.66667 up y*1
 sky CamSup (_mCs_)
 angle 67
 look_at CamSpnt (_mCs_)+<0,-.075,0>}
#break
#range (.05,.15)
camera {
 location CamSpos (_mCs_)+<-.018,.0015,-.0161>
 right x*1.66667 up y*1
 sky CamSup (_mCs_)
 angle 67
 look_at CamSpnt (_mCs_)+<1,-.075,-.5>}
#break
#range (.15,.333)
camera {
 location CamSpos (_mCs_)+<-.01,.0015,-.0161>
 right x*1.66667 up y*1
 sky CamSup (_mCs_)
 angle 67
 look_at CamSpnt (_mCs_)+<0,-.025,0>}
#break
#range (.333,.667)
camera {
 location CamSpos (_mCs_)+<-.018,.0015,-.0161>
 right x*1.66667 up y*1
 sky CamSup (_mCs_)
 angle 67
 look_at CamSpnt (_mCs_)+<1,-.05,-.67>}
#break
#range (.667,.75)
camera {
 location CamSpos (_mCs_)+<-.01,.0015,-.0161>
 right x*1.66667 up y*1
 sky CamSup (_mCs_)
 angle 67
 look_at CamSpnt (_mCs_)+<0,-.075,0>}
#break
#range (.75,.925)
camera {
 location CamSpos (_mCs_)+<-.018,.0015,-.0161>
 right x*1.66667 up y*1
 sky CamSup (_mCs_)
 angle 67
 look_at CamSpnt (_mCs_)+<1,-.075,-.5>}
#break
#range (.925,1)
camera {
 location CamSpos (_mCs_)+<-.01,.0015,-.0161>
 right x*1.66667 up y*1
 sky CamSup (_mCs_)
 angle 67
 look_at CamSpnt (_mCs_)+<0,-.075,0>}
#break
#end

#break
#case (2)

camera {
        location <-.1,.0175+(.0125*_mCd_),-4.933>
 right x*1.66667 up y*1
 //sky CamSup (_mCs_)
 angle 67
        look_at <-.0125+(.0025*_mCd_),.028-(.006*_mCd_),-5>
}

#break
#end

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

// sunlight and skylight
light_source {<-500,250,333> rgb <1.75,1.67,1.5>}
light_source {<0,100,0> rgb <.0125,.05,.15>*1.5 shadowless}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

// slope dependent texturing

#declare Snow=
texture {pigment {rgb <.96,.97,.99>*1.1}
 normal {wrinkles .4 ramp_wave turbulence .3 scale .039}
  finish {ambient .35 diffuse .425 specular .125 roughness .1}
}
#declare Snow2=
texture {pigment {rgb <.98,.97,.96>}
 normal {wrinkles .3 ramp_wave turbulence .25 scale .036}
  finish {ambient .325 diffuse .4 specular .15 roughness .075}
}
#declare Rock=
texture {pigment {crackle turbulence .2 color_map {
        [0 color  rgb <.75,.75,.75>]
        [1 color  rgb <.67,.67,.67>*.8]
        }}
 normal {crackle .6 turbulence .2}
  finish {ambient .125 diffuse .3 specular .05 roughness .6}
 scale .016
}
#declare Rock2=
texture {pigment {crackle turbulence .4 color_map {
        [0 color  rgb <.8,.775,.75>]
        [1 color  rgb <.75,.7,.67>*.8]
        }}
 normal {crackle .9 turbulence .4}
  finish {ambient .15 diffuse .25 specular .05 roughness .6}
 scale .018
}
#declare Dirt=
texture {pigment {crackle turbulence .5 color_map {
        [0 color rgb <.6,.5,.4>*.8]
        [1 color rgb <.625,.525,.45>]
        }}
 normal {crackle 1.5 turbulence .5}
  finish {ambient .2 diffuse .7 specular .075 roughness .1}
 scale .009
}
#declare Dirt2=
texture {pigment {spotted turbulence .5 color_map {
        [0 color rgb <.5,.475,.35>*1.6]
        [1 color rgb <.55,.525,.4>*1.3]
        }}
 normal {spotted .25 turbulence .5}
  finish {ambient .2 diffuse .7 specular .075 roughness .1}
 scale .007
}
#declare Trees=
texture {pigment {bumps turbulence .6 color_map {
        [.3 color rgb <.15,.425,.4>]
        [.5 color rgb <.3,.5,.425>]
        }}
 normal {bumps 1.3 turbulence .6}
  finish {ambient .125 diffuse .8 specular .1 roughness .3}
 scale .003
}
#declare Trees2=
texture {pigment {bumps turbulence .7 color_map {
        [.3 color rgb <.25,.55,.3>]
        [.5 color rgb <.375,.6,.2>]
        }}
 normal {bumps 1.2 turbulence .7}
  finish {ambient .15 diffuse .7 specular .15 roughness .2}
 scale .00275
}
#declare Grass=
texture {pigment {dents turbulence .3 color_map {
        [0 color rgb <.4,.7,.3>]
        [1 color rgb <.45,.55,.25>]
        }}
 normal {dents .6 turbulence .3}
  finish {ambient .175 diffuse .8 specular .075 roughness .075}
 scale .00225
}
#declare Grass2=
texture {pigment {bozo turbulence .3 color_map {
        [0 color rgb <.6,.5,.2>*1.3]
        [1 color rgb <.55,.45,.15>*1.2]
        }}
 normal {bozo .6 turbulence .3}
  finish {ambient .175 diffuse .8 specular .075 roughness .075}
 scale .002
}

#declare TerrainTex1=
 texture {
  slope -y, y, <0,.25>, <0,1>
  texture_map {
    [.0225 Dirt2]
    [.03-(.05*_C_) Grass]
    [.035-(.01*_C_) Trees2]
    [.04+(.133*_C_) Trees]
    [.05+(.149*_C_) Trees2]
    [.07+(.133*_C_) Grass2]
    [.1+(.199*_C_) Dirt2]
    [.15+(.15*_C_) Dirt]
    [.199+(.2*_C_) Rock2]
    [.2+(.55*_C_) Rock2]
    [.25+(.445*_C_) Snow2]
    [.425+(.2725*_C_) Snow]
    [.925-(.2225*_C_) Snow]
    [.933-(.15*_C_) Rock]
  } rotate -5*z
 }

#declare H = .3; // roughening<>smoothing
#declare Lacunarity = 4; // roughening<>smoothing
#declare Octaves = 6; // smoothing<>roughening
#declare Offset = .45; // height
#declare Gain= 1.9; // smoothing<>roughening

#declare F0=function{"ridgedmf",<H, Lacunarity, Octaves,Offset, Gain>
        }
#declare Fs=function{pigment {spotted turbulence .5 color_map {[0 color rgb .67][1
color rgb .75]} scale .03}
        }

// mountains

isosurface {
 function {y-(F0(x,y/1.5,z)*(noise3d(x*.1,y*.125,z*.1)/.333))*(Fs)}
 eval
 accuracy 0.0005
 contained_by{box{<-12, 0, -12>, <12, .45, 12>}}
texture {TerrainTex1}
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

// lakes

#declare W1=
texture {pigment {ripples phase clock turbulence .5-(.25*_Cw_) frequency 3 color_map {
        [0 color rgbf
<.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(1.5-(1*_Cw_))]
        [1 color rgbf
<.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(2.5-(2*_Cw_))]
        }scale .01}
 normal {ripples .05-(.033*_Cw_) phase clock turbulence .75-(.25*_Cw_) scale
.005-(.00125*_Cw_) scallop_wave}
  finish {ambient .25-(.2*_Cw_) diffuse 1-(.75*_Cw_) specular .75 roughness .005 phong
.075 phong_size 10
         reflection_type 0 reflection_min .03*(10*_Cw_) reflection_max .09*(10*_Cw_)
reflection_falloff 1
         reflection_exponent .67 conserve_energy}
 scale .125
  translate <-.05,.015,-5+(.05*clock)>
}

#declare W2=
texture {pigment {crackle turbulence .5-(.25*_Cw_) color_map {
        [0 color rgbf
<.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(1.5-(1*_Cw_))]
        [1 color rgbf
<.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(2.5-(2*_Cw_))]
        }scale .05}
 normal {bozo .067-(.05*_Cw_) phase clock turbulence .25-(.25*_Cw_) scale
.005-(.00125*_Cw_) scallop_wave}
  finish {ambient .25-(.2*_Cw_) diffuse 1-(.75*_Cw_) specular .75 roughness .005 phong
.075 phong_size 10
         reflection_type 0 reflection_min .03*(10*_Cw_) reflection_max .09*(10*_Cw_)
reflection_falloff 1
         reflection_exponent .67 conserve_energy}
 scale .25
 // translate <-.05,.015,-5+(.05*clock)>
}

#declare W3=
texture {pigment {crackle turbulence .5-(.25*_Cw_) color_map {
        [0 color rgbf
<.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(1.5-(1*_Cw_))]
        [1 color rgbf
<.5,.5+(.25*_Cw_),.5+(.15*_Cw_),.0125+(.775*_Cw_)>*(2.5-(2*_Cw_))]
        }scale .005}
 normal {wrinkles .075-(.067*_Cw_) phase clock turbulence .25-(.125*_Cw_) scale
.0025-(.00125*_Cw_)
triangle_wave}
  finish {ambient .25-(.2*_Cw_) diffuse 1-(.75*_Cw_) specular .75 roughness .005 phong
.075 phong_size 10
         reflection_type 0 reflection_min .03*(10*_Cw_) reflection_max .07*(10*_Cw_)
reflection_falloff 1
         reflection_exponent .67 conserve_energy}
 scale .5
 // translate <-.05,.015,-5+(.05*clock)>
}

#declare Water= material {
texture {bozo turbulence 1.5 frequency 1 texture_map {
        [.15 W1]
        [.2+(.0033*_mCo_) W2]
        [.4+(.0033*_mCo_) W2]
        [.45+(.005*_mCo_) W3]
        [1+(.005*_mCo_) W3]
        } scale .125}
 interior {fade_distance .01 fade_power 1000 fade_color <.5,.6,.8>}
}

box {<-12,-.001,-12>,<12,.015,12>
         material {Water}
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

sky_sphere {
        pigment {gradient y
                color_map {
                        [0 color rgb<.3,.55,1>*1.1]
                        [.125 color rgb<.675,.725,.775>*1.3]
                        [.133 color rgb<.25,.625,.85>*1.2]
                        [.2 color rgb<.25,.625,.85>*1.1]
                        [.5 color rgb<.15,.35,.7>]
        } turbulence .01 scale <.1,1,.1>}
}

fog {
        fog_type 2
        distance 1.25//+(.75*_mCd_)
        color rgb <.4,.5,.6>*1.67
        fog_alt .1125
        fog_offset .015
}

// omniVerse http://users.aol.com/persistenceofv/all.htm


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.